package com.ingenio.siot.adapter;

import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ingenio.siot.Adapter;
import com.ingenio.siot.entity.Punto;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class SchedulerAdapter extends Adapter{

	public List<Punto> obtenerObservaciones(Date date) throws Exception{
		Connection conn = null;
    	PreparedStatement stmt = null;
    	List<Punto> puntos;
    	try{
    	    conn = (Connection) abrirConexion();
    		String sel ="SELECT * from ubicaciones where fechaObservacion = ?";
    		stmt = (PreparedStatement) conn.prepareStatement(sel);
    		stmt.setTimestamp(1, new Timestamp(date.getTime()));
    		
    		ResultSet result = stmt.executeQuery();
    		puntos = new ArrayList<Punto>();
    		
    		Double lat;
    		Double lng;
    		Integer id_movil;
    		Double velocidad;
    		Punto p = new Punto();
    		Timestamp fecha;
    		while(result.next()){
    			p = new Punto();
    			id_movil = result.getInt("IdMovil");
    			velocidad = result.getDouble("velocidad");
    			lat = result.getDouble("latitud");
    			lng = result.getDouble("longitud");
    			fecha = result.getTimestamp("fechaObservacion");
    			p.setLatitud(lat);
    			p.setLongitud(lng);
    			p.setId_movil(id_movil);
    			p.setVelocidad(velocidad);
    			p.setFecha(fecha);
    			puntos.add(p);
    		}
    		
		}
		catch (Exception e) {
			e.printStackTrace();
			throw new Exception("Error al conectar con la base de datos.", e);
		}
    	finally{
    		//conn.close();
    		cerrarConexion(conn);
    	}
		return puntos;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
